Inleiding
Verantwoording
De module Databanken bestaat uit twee hoofdbrokken:
- SQL, Structured Query Language
- Databasedesign
Als je websites maakt in PHP, ASP of ASP.NET, Perl of Coldfusion of zelfs in Dreamweaver en je gebruikt MySQL, PostgreSQL, SQL Server, DB2 of Oracle, één ding staat vast je hebt SQL nodig om database-driven webinhoud te maken.
Natuurlijk worden databanken ook in desktop- en netwerkapplicaties gebruikt, maar dan nog is de kans groot dat het met een databasesysteem is dat met SQL werkt.
In de eerste hoofdstukken leren we over SQL, de taal, de verschillende instructies en de clausules van SQL om gegevens in een database op te slaan en eruit op te halen.
In de laaste hoofdstukken leren we over databasedesign. We leren het ER model en hoe we het omzetten in een relationeel model met tabellen, kolommen, relaties tussen de tabellen, primary en foreign keys enz.
Tot nu toe begon de module met databasedesign. Ik deed gewoonweg wat de meeste bestaande handboeken doen. Waarom keer ik de volgorde van de leerstof om? En leren we eerst hoe SQL werkt? Wel je moet kunnen gaan vooraleer je kan lopen. Uit mijn ervaring met de studenten is gebleken dat kennis van SQL het begrijpen van databasedesign vergemakkelijkt. En omgekeerd beginnen met databasedesing leidt ze af van de concrete reden waarom ze databases willen leren kennen. De studenten hebben meestal een concreet probleem voor ogen dat om een concrete oplossing vraagt en die beantwoordt aan een werkelijke behoefte. Ze denken bijvoorbeeld aan het opslaan van gegevens van de school waarin ze werken of aan gegevens van de vakantieregeling op het bedrijf waar ze werken. Databasedesign is te abstract om mee te beginnen. Het heeft niet veel zin aan studenten een oplossing voor een concreet probleem aan te bieden door er eerst nog een paar abstracte bij te maken!
Basisbegrippen
- Een database is een gecentraliseerd en gestructureerd geheel van gegevens die zijn opgeslagen op een computer systeem. Een database biedt
- faciliteiten voor het ophalen, toevoegen, wijzigen en verwijderen van de gegevens wanneer dat nodig is.
- biedt ook faciliteiten voor het transformeren van de opgehaalde gegevens in bruikbare informatie.
- Een database wordt meestal beheerd door een Database Administrator (DBA).
- Structure verwijst naar het feit dat SQL gegevens in tabellen opslaat. Een tabel bestaat uit kolommen en rijen. Hieronder zie je een voorbeeld van de tabulaire voorstelling van gegevens:
Voornaam Familienaam Titel Stad Uitgeverij Verschijnings-datum Herdruk Commen-taar Aurelius Augustinus De stad van God Baarn Uitgeverij Baarn 1983 1992 Diderik Batens Logicaboek Garant 1999 Émile Benveniste Le vocabulaire des institutions Indo-Européennes. 2. Pouvoir droit religion Paris Les Éditions de minuit 1969 Evert W. Beth De Wijsbegeerte der Wiskunde. Van Parmenides tot Bolzano Antwerpen Philosophische Biliotheek Uitgeversmij. N.V. Standaard-Boekhandel 1944 Evert W. Beth Wijsbegeerte der Wiskunde Antwerpen Philosophische Biliotheek Uitgeversmij. N.V. Standaard-Boekhandel 1948 Rémy Bernard Antonin le Pieux. Le siècle d'or de Rome 138-161 Librairie Arthème Fayard 2005 Jean-Gabriel Ganascia Le muthe de la Singularité Paris Éditions du Seuil, Points Essais 2017 Faut-il craindre l'intelligence artificielle? Marc Bloch Rois et serfs et autres écrits sur le servage Paris La boutique de l’histoire 1996 Pierre Bonte en Michel Izard Dictionnaire de l’etnologie et de l’anthropologie PUF 1991 Robert Bly The sibling society Londen Persus 1996 Fernand Braudel De middellandse zee. Het landschap en de mens Amsterdam/Antwerpen Uitgeverij Contanct 1992 Uit het Frans vertaald: La méditerranée. La part du milieu. Parijs: Librairie Armand Colin, 19666 - Query verwijst naar het opvragen van gegevens uit een database. SQL bevat verschilllende statements maar de belangrijkste is SELECT, die de query aan de database richt om gegevens op te vragen. Gegevens opvragen is het belangrijkste en daarom gaan we ons eerst daarmee uitvoerig bezig houden.
- De SQL taal is gestandardiseerd en dat is buitengewoon belangrijk omdat je de taal slechts één keer hoeft te leren om ze in verschillende databasesystemen te gebruiken.
- Ontleding van een SQL statement
Net zoals zinnen opgebouwd zijn uit woorden zoals zelfstandige naamwoorden, bijwoorden, werkwoorden enz., is een SQL statement opgebouwd uit sleutelwoorden, namen (identifiers) en constanten. We gaan het volgende voorbeeld analyseren:SELECT AddedBy FROM Forum WHERE Id = 1
- De sleutelwoorden zijn woorden die in de SQL standaard gedefiniëerd zijn om uitdrukkingen mee de maken. Het zijn woorden die door de ontwerpers van SQL van tevoren vastgelegd zijn en die wij moeten vanbuiten leren. In het statement hierboven gebruiken we het sleutelwoord SELECT, FROM en WHERE. Veel sleutelwoorden zijn verplicht maar de meeste zijn optioneel. Het gelijkheidsteken (=) is een speciaal sleutelwoord dat een operator wordt genoemd. SQL maakt geen onderscheid tussen hoofletters en kleine letters.
- Namen (identifiers): dat zijn namen die wij zelf aan de dingen in een database geven zoals de namen van de tabellen en de kolommen. De woorden AddedBy, forum en Id in het hierboven staande statement zijn namen. Id, AddedBy zijn kolomnamen en forum is de naam van de tabel. Namen geef je zelf. Maar wij spreken om de namen volgens bepaalde regels te vormen. Elk woord in de naam begint met een hoofdletter en de spaties tussen de woorden laten we weg. Dat heet Pascal notatie.
- Constanten stellen een lettelijke en vaste waarde voor. In het statement hierboven is 9 een numerieke constante.
- Clausules: voor het goed kunnen opstellen van SQL statements is het belangrijk in te zien dat SQL statements bestaan uit kleinere onderdelen, die in SQL clausules worden genoemd. Het zijn de 'bijwoorden' van SQL. Het voorafgaande SQL statement kunnen we herschrijven als volgt:
SELECT AddedBy FROM Forum WHERE Id = 1
De SELECT clausule is SELECT AddedBy
De FROM clausule is FROM Forum
En de WHERE clausule is WHERE Id = 1
- Het SQL statement wordt hier uitgeschreven op meerdere lijnen zodat de clausules waaruit het SQL bestaat duidelijk zichtbaar zijn. Alhoewel het niet nodig is een statement over meerdere lijnen uit te schrijven wordt het opstellen en het begijpen van SQL statements erdoor vergemakkelijkt.
- Syntaxis
Elk statement in SQL moet volgens een bepaalde syntaxis opgesteld worden. Dat wil zeggen dat het statement geschreven moet worden met de juiste sleutelwoorden, namen en constanten en in de juiste volgorde. In een SELECT statement moet het sleutelwoord aan het begin van het statement staan. De syntaxis van het volgende SQL statement is fout:FROM forum WHERE Id = 1 SELECT AddedBy
Syntaxis en semantiek hangen samen. De syntaxis van een SQL statement is datgene wat er letterlijk in het SQL statement staat. De semantiek van een SQL statement is wat je er mee bedoelt en de manier waarop het database management systeem op reageert. We komen daar later met voorbeelden op terug.
- Definiëren en manipuleren
SQL statements komen in twee smaken, DDL en DML.- De Data Definition Language wordt gebruikt om de objecten van de database te beheren. Voorbeelden hiervan zijn tabellen en kolommen.
- De Data Manipulation Language wordt gebruikt om de gegevens die in die objecten zit te manipuleren zoals gegevens van personen of van boeken.